package strecke;

import com.jme3.math.Vector3f;

import helper.IDGenerator;

public class Weiche implements GleisElement{

	private long ID;
	
	private GleisElement prev;
	private GleisElement rund;
	private GleisElement gerade;
	
	private boolean istRund = false;
	
	private int hoechstgeschwindigkeitGerade;
	private int hoechstgeschwindigkeitRund;
	
	public Weiche(GleisElement prev, GleisElement rund, GleisElement gerade)
	{
		this.ID = IDGenerator.generateID();
		System.out.println("Gleis erzeugt, ID = " +ID);
		this.prev = prev;
		this.rund = rund;
		this.gerade = gerade;
		this.hoechstgeschwindigkeitGerade = 120;
		this.hoechstgeschwindigkeitRund = 60;
	}
	
	public void setNextGerade(GleisElement next)
	{
		this.gerade = next;
	}
	
	public void setNextRund(GleisElement next)
	{
		this.rund = next;
	}
	
	public void setPrev(GleisElement prev)
	{
		this.prev = prev;
	}
	
	@Override
	public GleisElement getNext() {
		return (istRund)?rund:gerade;
	}

	@Override
	public GleisElement getPrev() {
		return prev;
	}

	@Override
	public int getHoechstgeschwindigkeit() {
		return (istRund)?hoechstgeschwindigkeitRund:hoechstgeschwindigkeitGerade;
	}

	@Override
	public long getID() {
		return this.ID;
	}
	
	public void toggle()
	{
		this.istRund = !this.istRund;
	}
	
	public void gerade()
	{
		this.istRund = false;
	}
	
	public void rund()
	{
		this.istRund = true;
	}

	@Override
	public Vector3f getPosition(float pos) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public float getLaenge() {
		// TODO Auto-generated method stub
		return 0;
	}

	@Override
	public float getWinkel(float pos) {
		// TODO Auto-generated method stub
		return 0;
	}

	@Override
	public Gleistyp getTyp() {
		// TODO Auto-generated method stub
		return null;
	}
}
